package servlet;

import java.io.IOException;

import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dominio.SolicitudArticulo;
import bean.remote.ArticuloRemoto;
import bean.remote.SolicitudArticuloRemote;

/**
 * Busca una solicitud de articulo para ser entregada a despacho Entrega una
 * solicitud de articulo a despacho correspondientes
 * 
 * @author Maxi.Herrera
 */
public class SolicitudArticuloEntregaServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1573707374472959571L;

	@EJB(beanName = "solicitudArticuloBean")
	private SolicitudArticuloRemote solicitudArticuloRemote;

	@EJB(beanName = "articuloBean")
	private ArticuloRemoto articuloRemoto;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String idSolicitud = req.getParameter("idSolicitud");
		String idModulo = req.getParameter("idModulo");

		RequestDispatcher dispatcher = null;
		// validacion para ver si me pasa bien los datos
		if (idSolicitud == null && idModulo == null) {
			dispatcher = req.getRequestDispatcher("solicitudesArticulo.jsp");
		} else {
			SolicitudArticulo solicitudArticulo = solicitudArticuloRemote
					.findByIdSolicitudAndIdModulo(Long.valueOf(idSolicitud),
							Long.valueOf(idModulo));

			String page = "/solicitudArticuloEntrega.jsp";

			req.setAttribute("data", solicitudArticulo);
			req.setAttribute("articulos", articuloRemoto.findAll());

			dispatcher = req.getRequestDispatcher(page);

		}

		if (dispatcher != null) {
			dispatcher.forward(req, resp);
		}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		Long idSolicitud = Long.valueOf(req.getParameter("idSolicitud"));
		Long idModulo = Long.valueOf(req.getParameter("idModulo"));

		String[] codigosArticulo = req.getParameterValues("codigoArticulo");
		String[] cantidadesAEntregar = req.getParameterValues("aEntregar");

		SolicitudArticulo solicitudArticulo = solicitudArticuloRemote
				.findByIdSolicitudAndIdModulo(idSolicitud, idModulo);

		solicitudArticuloRemote.entregar(solicitudArticulo, codigosArticulo,
				cantidadesAEntregar);
	}
}
